package Day_0201.JUC;

/**
 * @author zxc
 * @date 2023/02/01 22:43
 **/
public class Semaphore {
    public static void main(String[] args) {
        /**
         * Semaphore的概念
         * ===>
         * （1）semaphore就是一个信号量，它的作用是限制某段代码块的并发数。
         *  ===》 semaphore，是用来限制某段代码块的并发数。（即，同时能够访问某段代码块的最大线程数）
         *
         * （2）Semaphore有一个构造函数，可以传入一个int型整数n，表示某段代码最多只有n个线程可以访问，
         *  如果超出了n，那么请等待，等到某个线程执行完毕这段代码块，下一个线程再进入。
         *  ===》
         * （3）特殊情况 ：
         *  如果Semaphore构造函数中传入的int型整数n=1，相当于变成了一个synchronized。
         *  ===》 即，若是向semaphore中传入参数为1的话，即限制该代码块的并发数为1;
         *  （类似于Synchronized关键字，ReentrantLock等待同步方法）
         *
         */
    }
}
